import 'package:crypto/crypto.dart';
import 'dart:convert'; // for the utf8.encode method

// 签名验证算法
class SignServices{
  static getSign(Map json){
    // 获取对象所有的key
    List attrKeys = json.keys.toList();

    // 排序，ascii字符顺序进行升序排列，a-z
    attrKeys.sort();

    String str='';
    for(var i=0; i<attrKeys.length; i++){
      str += '${attrKeys[i]}${json[attrKeys[i]]}';
    }

    // 将字符串转化成bytes类型字节数组
    var strBytes = utf8.encode(str);

    // 进行md5加密，返回是对象类型
    var strMd5 = md5.convert(strBytes);

    return strMd5.toString();
  }
}